#ifndef __WINABSTHREADS_H__
# define __WINABSTHREADS_H__

#  include <Windows.h>
#  include <Winbase.h>

typedef	HANDLE					ABSHANDLE;
typedef LPVOID					ABSPARAM;
typedef LPTHREAD_START_ROUTINE	ABSSTART;
typedef	DWORD 					ABSRETURN;

# include "IAbsThreads.h"

class				winAbsThreads : public IAbsThreads
{
public:
	winAbsThreads(void);
	winAbsThreads(const ABSSTART, const ABSPARAM);
	winAbsThreads(const winAbsThreads &);
	~winAbsThreads(void);
	winAbsThreads&	operator=(const winAbsThreads &);

public:
	void			setStartRoutine(const ABSSTART);
	void			setParam(const ABSPARAM);

public:
	bool			createThread(void);
	bool			waitThread(void);
	int				terminateThread(void);
	bool			run(void);

private:
	ABSHANDLE		_handle;
	ABSSTART		_startRoutine;
	ABSPARAM		_param;
};

#endif // __WINABSTHREADS_H__
